package org.casper.mail;

import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

/**
 * 发送邮件类
 * @author Casper
 * Create_time:2015年10月17日 下午7:29:12
 * description:
 */
public class SendMail extends Thread {
	//用于给用户发送邮件的邮箱  测试网易的的邮箱
	private String from = "13795765955@163.com";
	private String mailname ="13795765955@163.com";
	private String mailpass ="test123456";
	private String mailhost = "smtp.163.com";
	private String regMail;	//要发送邮件的邮箱
	
	public SendMail(String regMail) {
		this.regMail = regMail;
	}

	@Override
	public void run() {
		try {
			Properties pro = new Properties();
			pro.setProperty("mail.host",mailhost);
			pro.setProperty("mail.transport.protocol", "smtp");
			pro.setProperty("mail.smtp.auth", "true");
			//使用JavaMail发送邮件的5个步骤
			//1.创建session，并初始化邮箱的地址，协议等
			Session session = Session.getInstance(pro);
			session.setDebug(true);//开启session的debug模式这样可以查看程序的发送mail的运行状态
			//2.通过session获得transport对象，主要用于发送邮件
			Transport ts = session.getTransport();
			//3、使用邮箱的用户名和密码连接上邮件服务器，才能发送邮件
			ts.connect(mailhost,mailname,mailpass);
			//4、创建邮件
			Message message = createEmail(session, regMail);
			//5.发送邮件
			ts.sendMessage(message,message.getAllRecipients());
			ts.close();
		} catch (NoSuchProviderException e) {
			e.printStackTrace();
		} catch (MessagingException e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 创建邮件
	 * @Author Casper
	 * Create_time:2015年10月17日 下午7:45:57
	 * description:
	 */
	public Message createEmail(Session session,String regMail){
		//创建邮件对象
		MimeMessage message = new MimeMessage(session);
		try {
			//指明邮件的发件人
			message.setFrom(new InternetAddress(from));
			//指明邮件的收件人
			message.setRecipient(Message.RecipientType.TO, new InternetAddress(regMail));
			//设置邮件的主题
			message.setSubject("用户注册激活邮件");
			String info = "恭喜你注册成功"+regMail;
			//设置邮件的内容
			message.setContent(info,"text/html;charset=UTF-8");
			message.saveChanges();
		} catch (MessagingException e) {
			e.printStackTrace();
		}
		return message;
	}
	
	

}
